#include "../game.h"
#include "hast.h"

/*---------------------------------

Hast::Hast( bool spelare, short x, short y )
virtual
Konstruktor, sätter bild och typ

---------------------------------*/

Hast::Hast( bool spelare, short x, short y ) : Pjas(spelare, x, y) {
	bild = video.loadImage( spelare == VIT ? "vit_hast.bmp" : "svart_hast.bmp" );
	typ = HAST;
}

/*---------------------------------

void Hast::mojligtDrag( void )
overloadad, virtual
Kollar vilka positioner springaren kan gå till.
Sätter: 0 friend i vägen, 1 kan gå, 2 fiendepjäs man kan ta

---------------------------------*/

void Hast::mojligtDrag( void ) {
	// Nollställ arrayen
	for( int i = 0; i < 8; i++ ) {
		for( int j = 0; j < 8; j++ ) {
			mojligaDrag[i][j] = 0;
		}
	}

	// Array med offsets till dragen
	static const short drag[8][2] = {{1, 2}, {2, 1}, {2, -1}, {1, -2}, {-1, 2}, {-2, 1}, {-2, -1}, {-1, -2}};

	// Loopa genom drag-arrayen
	for( int i = 0; i < 8; i++ ) {
		short x, y;
		x = xpos + drag[i][0];
		y = ypos + drag[i][1];
		// Avbryt om draget är utanför brädet
		if( x < 0 || x > 7 || y < 0 || y > 7 ) {
			continue;
		}

		// Kolla om draget är möjligt. (existerarPjas är NEJ, JA eller HOTAR)
		mojligaDrag[x][y] = Pjas::existerarPjas( x, y );

	}
}
